package com.grj.template.boot.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil {

    public static String toCamelCase(String input) {
        // 使用正则表达式匹配大写字符
        Pattern pattern = Pattern.compile("([A-Z])");
        Matcher matcher = pattern.matcher(input);

        // 使用 StringBuffer 来存储结果
        StringBuffer result = new StringBuffer();
        while (matcher.find()) {
            // 将匹配到的大写字符转换为小写，并在前面添加下划线
            matcher.appendReplacement(result, "_" + matcher.group(1).toLowerCase());
        }
        matcher.appendTail(result);

        // 处理首字符如果是下划线的情况
        String finalResult = result.toString();
        if (finalResult.startsWith("_")) {
            finalResult = finalResult.substring(1);
        }
        return finalResult;
    }
}
